#ifndef __HEROZ_BASIC_V2_HH__
#define __HEROZ_BASIC_V2_HH__
#include "bV2.hh"

#ifndef HeroZ
struct HeroZ;
#endif

class HeroBasic : public Basic {
  HeroZ *heroz;

protected:
  FloatType exec_peek(FloatType addr);
  void exec_poke2(FloatType addr, FloatType val);
  void unknown_command(int cmd);
  void print_error(unsigned short line, const Error &error);

public:
  HeroBasic(HeroZ *h) : heroz(h) {}
};

HeroBasic *load_program(const char *path, HeroZ *heroz);
void init_basic(HeroZ *heroz);
void quit_program(HeroBasic *basic);


#endif
